// #include "system_support.h"
// #include "system.h"
// #include "FreeRTOS.h"

// void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
// {
// 	EventStructdef event;
// 	event.eventType = RecieveErrorEvent;
// 	BaseType_t xHigherPriorityTaskWoken = 0;

// 	if(huart == UAV_UART_HANDLE)
// 	{
// 		/* 可以再作细分处理 */
// 		if(System.SystemEvent.UAV_UartRxQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.UAV_UartRxQueue, &event, &xHigherPriorityTaskWoken);
		
// 	}

// 	else if(huart == LC307_UART_HANDLE)
// 	{
// 		/* 可以再作细分处理 */
// 		if(System.SystemEvent.Flow_UartRxQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.Flow_UartRxQueue, &event, &xHigherPriorityTaskWoken);
// 	}
// 	huart->ErrorCode = 0;

//     portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
// }

// void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
// {
// 	EventStructdef event;
// 	event.eventType = RecieveIdleEvent;
// 	BaseType_t xHigherPriorityTaskWoken = 0;

//     /* 飞控板串口的队列 */
// 	if(huart == UAV_UART_HANDLE)
// 	{
// 		event.dataLen = Size;
// 		if(System.SystemEvent.UAV_UartRxQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.UAV_UartRxQueue, &event, &xHigherPriorityTaskWoken);
// 	}
// 	else if(huart == LC307_UART_HANDLE)
// 	{
// 		event.dataLen = Size;
// 		if(System.SystemEvent.Flow_UartRxQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.Flow_UartRxQueue, &event, &xHigherPriorityTaskWoken); // TODO 加上强制入队
// 	}

//     portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
// }

// void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
// {
// 	EventStructdef transmit_cplt_event;
// 	transmit_cplt_event.eventType = TransmitCpltEvent;
// 	BaseType_t xHigherPriorityTaskWoken = 0;
	
//     /* 飞控板串口的队列 */
// 	if(huart == UAV_UART_HANDLE)
// 	{
// 		if(System.SystemEvent.UAV_UartTxQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.UAV_UartTxQueue, &transmit_cplt_event, &xHigherPriorityTaskWoken);
// 	}

//     portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
// }

// void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
// {
// 	EventStructdef exti_event;
// 	exti_event.eventType = EXTI_Event;
// 	BaseType_t xHigherPriorityTaskWoken = 0;

// 	if(GPIO_Pin == ICM20602_INT_PIN)
// 	{
// 		exti_event.eventTime = Get_SystemTimer_us();
// 		if(System.SystemEvent.IMU_Sensor_EXTIQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.IMU_Sensor_EXTIQueue, &exti_event, &xHigherPriorityTaskWoken);
// 	}
// 	else if(GPIO_Pin == LSM303D_INT_PIN)
// 	{
// 		exti_event.eventTime = Get_SystemTimer_us();
// 		if(System.SystemEvent.Magnetometer_EXTIQueue != NULL)
// 			xQueueSendFromISR(System.SystemEvent.Magnetometer_EXTIQueue, &exti_event, &xHigherPriorityTaskWoken);
// 	}
    
//     portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
// }
